Methods, systems, and computer readable media for policy event record generation

ABSTRACT

According to one aspect, the subject matter described herein includes a method for generating a policy event record (PER). The method includes receiving one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session. The method also includes analyzing the selected one or more policy definitions and initiating one or more associated policy actions. The method further includes generating a policy event record that includes information that identifies the one or more selected policy definitions.

PRIORITY CLAIM

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/522,224, filed Aug. 10, 2011, the disclosure of which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The subject matter described herein relates to policy generation. More specifically, the subject matter relates to methods, systems, and computer readable media for policy event record generation.

BACKGROUND

Traditionally, control of quality of service (QoS) within telecommunications networks has been achieved using a combination of best-effort data delivery, network resources reservation, or data packet marking on data communication paths. However, the design of emerging next generation network (NGN) architectures (e.g., Internet protocol (IP) multimedia subsystem (IMS) and long term evolution (LTE)) will render this approach no longer viable. One feature of network topology within the various NGNs is that the signaling required to negotiate a data transfer (e.g., application signaling) may not travel on the same logical path as the actual data transfer itself (e.g., data traffic). Therefore, a policy entity is needed to link the application signaling on the service plane to data traffic on the transport plane in order to allow applications to request QoS to be performed on the traffic plane.

One example of such a policy entity is a policy and charging rules function (PCRF). The PCRF, or policy engine, generally is a policy decision point that may be centrally located in the network and may communicate with access edge devices (e.g., policy enforcement points), applications, and operational support systems/business support systems (OSS/BSS) platforms to manage subscriber and network information according to policy rules. These policy rules may be used to define how broadband network resources should be allocated to subscribers and applications and under what conditions. Policy rules may encompass the business and technological rules that govern which network services a subscriber can access, at what bandwidth level, when, and for how long. The PCRF may identify appropriate policy rules by querying a subscription profile repository (SPR) for relevant policy information and may enforce them by sending them to a policy enforcement node, such as a policy and charging enforcement function (PCEF).

Generally, policy information is retrieved or provided in response to one or more policy event triggers, such as a subscriber requesting a service via the Internet. By analyzing policy information and associated policy event triggers, network operators may perform various actions. For example, a network operator may analyze policy information and associated policy event triggers and may use this information to improve quality of service and to increase revenue.

Accordingly, a need exists for methods, systems, and computer readable media for policy event record generation.

SUMMARY

According to one aspect, the subject matter described herein includes a method for generating a policy event record (PER). The method includes receiving one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session. The method also includes analyzing the selected one or more policy definitions and initiating one or more associated policy actions. The method further includes generating a policy event record that includes information that identifies the one or more selected policy definitions.

A system for generating a PER is also disclosed. The system includes a policy definition selection module (PDSM) configured to receive one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session. The system also includes a policy action module (PAM) configured to analyze the selected one or more policy definitions and to initiate one or more associated policy actions. The system further includes a PER module (PERM) configured to generate a policy event record that includes information that identifies the one or more selected policy definitions.

The subject matter described herein for generating a PER may be implemented using a non-transitory computer readable medium having stored thereon executable instructions that when executed by the processor of a computer control the processor to perform steps. Exemplary non-transitory computer readable media suitable for implementing the subject matter described herein include chip memory devices or disk memory devices accessible by a processor, programmable logic devices, and application specific integrated circuits.

As used herein, the term “node” refers to a physical computing platform including one or more processors and memory.

As used herein, the terms “function” or “module” refer to software in combination with hardware and/or firmware for implementing features described herein.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter described herein will now be explained with reference to the accompanying drawings of which:

FIG. 1 is a diagram illustrating an exemplary network for generating a PER according to an embodiment of the subject matter described herein;

FIG. 2 is a diagram illustrating exemplary communications between a PCRF and a PCEF according to an embodiment of the subject matter described herein;

FIG. 3 is a diagram illustrating an exemplary PCRF according to an embodiment of the subject matter described herein;

FIG. 4 is a diagram illustrating an exemplary PCRF and exemplary PCEF according to another embodiment of the subject matter described herein;

FIG. 5 is a diagram illustrating an exemplary PCRF according to another embodiment of the subject matter described herein;

FIG. 6 is a diagram illustrating an exemplary PER data according to an embodiment of the subject matter described herein;

FIG. 7 is a diagram illustrating exemplary policy group statistics according to an embodiment of the subject matter described herein;

FIG. 8 is a diagram illustrating exemplary data usage statistics according to an embodiment of the subject matter described herein; and

FIG. 9 is flow chart illustrating exemplary steps for generating a PER according to an embodiment of the subject matter described herein.

DETAILED DESCRIPTION

Reference will now be made in detail to exemplary embodiments of the subject matter described herein, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

FIG. 1 is a diagram illustrating an exemplary network for generating a PER according to an embodiment of the subject matter described herein. Referring to FIG. 1, network 100 may include user equipment (UE) 102, an access node (AN) 104 (e.g., a base transceiver station (BTS) or evolved node b (e node b)), a core network 106, and Internet 114.

UE 102 represents a device, such as a mobile handset, for communicating with one or more portions of network 100. For example, UEs 102 may include a computer, a pager, a smartphone, a phone, a wireless modem, a hotspot, a computing platform, a mobile handset, and other subscriber devices.

UE 102 may communicate with access node 104. Access node 104 may be located within an access network (not shown). An access network may include nodes, functions, devices, and/or components for providing a UE 102 access to services, functions, or devices in one or more networks (e.g., core network 106). For example, an access network may include a radio access network (RAN) or other access network, such as a Global System for Mobile Communications (GSM) RAN (GRAN), a GSM enhanced data rates for GSM evolution (EDGE) RAN (GERAN), a general packet radio service (GPRS) access network, a universal mobile telecommunications system (UMTS) RAN (UTRAN), an evolved UTRAN (eUTRAN), an Internet protocol (IP) connectivity access network (IP CAN), a code division multiple access (CDMA) network, an Evolution-Data Optimized (EV-DO), a wideband CDMA (WCDMA) network, a High Speed Packet Access (HSPA) network, or an evolved HSPA (eHSPA+) network.

Access node 104 may perform radio access functions for connecting UE 102 with various communications networks and/or nodes. Access node 104 may communicate with core network 106 using gateway functionality. For example, access node 104 or other node (e.g., a gateway) may communicate messages (e.g., authentication or mobility related messages) to one or more nodes within the core network 106.

Core network 106 may be a network for providing services UE 102. For example, core network 106 may perform network aggregation, charging, and authentication functions for UE 102. In one embodiment, core network 106 may be at least one of a 3G network, a 3G+ network, a GSM network, a 4G network, an LTE network, an EPC network, a 3rd Generation Partnership Project (3GPP) network, a GPRS core network, or other network.

Core network 106 may include a policy and charging enforcement function (PCEF) 108 and a PCRF 110. Core network 106 may also include other nodes, such as a subscription profile repository (SPR), a Diameter relay agent and/or a Diameter signaling router (DRA/DSR), a mobility management entity (MME), a home subscriber server (HSS), an authentication, authorization, and accounting (AAA) server, and a bearer binding and event reporting function (BBERF).

PCEF 108 may be any suitable entity for generating and/or enforcing policies (e.g., one or more policy rules). PCEF 108 may include functionality located at a gateway (e.g., a packet data network (PDN) gateway) or other node for communicating between networks, e.g., Internet 114. In one embodiment, PCEF 108 manages and enforces policy and charging control (PCC) rules provided by PCRF 110. For example, rules may be provided for each session data flow (SDF) and/or UE 102 attempting to use PCEF 108. In this example, PCEF 108 may control access to external networks and charge for such access based on policies that include rules received from PCRF 110.

In some embodiments, PCEF 108 may include or be integrated with a gateway GPRS support node (GGSN) for communicating between a GPRS network and external networks, e.g., Internet 126 or private network 128. For example, in an embodiment where core network 106 includes a GPRS core network, PCEF 108 may include a GGSN. PCEF 108 may communicate with serving GPRS support node (SGSN) or other gateway for providing services to UE 102. For example, PCEF 108 may request and receive PCC rules from PCRF 110. Using the PCC rules, PCEF 108 may control access to external networks and charge for such access based on the PCC rules. For example, for an SDF (e.g., one or more related packets) that is under policy control, PCEF 108 may allow the SDF to pass through the node if the corresponding gate is open (e.g., as determined by one or more relevant PCC rules). For an SDF that is under charging control, PCEF 108 may allow the SDF to pass through the node if there is a corresponding active PCC rule and, for online charging, the OCS has authorized the applicable credit with that charging key. PCEF 108 may let an SDF pass through the gateway during the course of the credit re-authorization procedure. If requested by PCRF 110, PCEF 108 may report to PCRF 110 when the status of the related SDF changes, which can be used to, monitor an IP-CAN bearer path dedicated for AF signaling traffic.

PCEF 108 may also include a BBERF. The BBERF may be any suitable entity for performing bearer binding and/or event reporting. In one embodiment, the BBERF may control user plane traffic. For example, the BBERF may ensure that an SDF is carried over a bearer path with an appropriate quality of service and may perform resource reservation. The BBERF may also provide event reporting to one or more nodes in network 100. For example, the BBERF may inform PCRF 110 of various network or bearer-related events, e.g., based on triggers installed or requested by PCRF 110.

In some embodiments, PCEF 108 may include a PER module (PERM) for generating one or more PERs. A PER may include information associated with a policy event trigger, such as policy event attributes (PEAs) and policies identifiers of policies that are performed or to be performed in response to the policy event trigger. Exemplary policy event triggers may include a session create, a session modify, a session update, or a session delete request or answer message. Exemplary PEAs may include an event type, a policy identifier (ID), a radio access technology (RAT) type, an Internet protocol (IP) connectivity access network (IP-CAN) type, a serving mobile country code (MCC), a serving mobile network code (MNC), a session ID, an application ID, a peer identity, a user ID, a user IPv4 address, a user IPv6 address, a called station ID, a mobility protocol, a tier, and/or an event triggers mask.

In some embodiments, a PERM may generate PERs based on a policy context object or using information from a policy context object. A policy context object may be a data structure that stores relevant policy event information and may be generated in response to a policy event trigger. For example, a policy context object may include PEAs and may be inspected to determine whether a policy is to be enforced. In some embodiments where a policy context object is stored at PCRF 110 or another module separate from PCEF 108, policy context information (e.g., policy definitions) may be sent (e.g., from PCRF 110) to PCEF 108 via a PER interface. After generating a PER using the policy context information, the PERM may send the PER to other nodes, such as an NMS or an accounting system.

PCRF 110 may be any suitable entity for creating, selecting, or otherwise determining policies (e.g., one or more PCC rules). For example, PCRF 110 may be a stand-alone node, e.g., a policy server or a multimedia policy engine (MPE), or may be co-located or integrated with one or more nodes in network 100, e.g., a DRA/DSR. PCRF 110 may inform PCEF 108, through the use of PCC rules, on the treatment of each SDF that is under PCC control, in accordance with policy decisions. In performing policy decisions, PCRF 110 may communicate with one or more nodes in network 100 for gathering subscription related information. For example, PCRF 110 may communicate with SPR, a subscription data module (SDM), and/or an HSS (SPR/SDM/HSS) 112 to retrieve policy information. In another example, PCRF 110 may communicate with a network management system (NMS), e.g., via a simple network management protocol (SNMP) interface. In this example, PCRF 110 may poll or otherwise query the NMS or a related database to receive information, e.g., regarding the state of one or more devices in an access network, core network, or other network.

Subscription related information may be used (e.g., by PCRF 110) to generate PCC rules. PCC rules typically include information for managing user plane traffic (e.g., data packets). For example, a PCC rule may include a rule name, service identifier, SDF filter(s), precedence information, gate status, QoS parameters, charging key (i.e., rating group), other charging parameters, and/or monitoring key. The rule name or PCC rule identifier may be used to reference a PCC rule in the communication between the PCEF and the PCRF and may be unique for each PCC rule used during a IP-CAN session. The service identifier may be used to identify the service or the service component to which the SDF relates. The SDF filter(s) may be used to select the traffic for which the rule applies. For example, an SDF filter make take the form of an IP five-tuple specifying: (1) source IP address(es), (2) destination IP address(es), (3) source port number(s), (4) destination port number(s), and (5) application protocol(s) (e.g., transmission control protocol (TCP), user datagram protocol (UDP)). In this example, packets containing information matching the IP five-tuple may be considered part of the SDF for which the corresponding PCC rule is to be applied. In another example, an SDF filter may be based on fewer, different, and/or additional criteria. For instance, UE 102 or another node in network 100 may assign an SDF identifier (e.g., a value) to packets in a custom parameter field. In this instance, an SDF filter in a PCC rule may use this parameter for determining traffic for which the rule applies.

PCC policy decisions may be based on one or more of the following: information obtained from an AF via the Rx interface (e.g., session, media, and subscriber related information), information obtained from PCEF 108 (e.g., Internet Protocol Connectivity Access Network (IP-CAN) bearer attributes, request type, device information, and subscriber related information), information obtained from SPR/SDM/HSS 112 (e.g., subscriber and service related data), and pre-configured information. If the information from PCEF 108 contains traffic mapping information not matching any SDF filter known to PCRF 110, and PCRF 110 allows the UE to request enhanced QoS for services not known to PCRF 110, PCRF 110 may add the traffic mapping information as SDF filters to the corresponding authorized PCC rule. PCRF 110 may wildcard missing filter parameters, e.g., missing uplink TFT address and port information in case of GPRS. For example, a blank or “wildcard” filter (e.g., port number=“*’) may consider any value (including an empty or zero value) as matching the filter criteria.

Applying a policy may be part of either a PULL or a PUSH procedure. A PULL procedure may occur when provisioning is solicited by PCEF 108. For example, in response to a request for PCC rules being made by PCEF 108, PCRF 110 may provision PCC rules using a credit control answer (CCA) message. A PUSH procedure may occur when provisioning is unsolicited. For example, PCRF 110 may decide to provision PCC rules without obtaining a request from PCEF 108, e.g., in response to information provided to PCRF 110 from an AF via the Rx interface, or in response to an internal trigger within PCRF 110. In order to provision PCC rules without a request from PCEF 108, PCRF 110 may include the PCC rules in a re-authentication request or answer message.

In some embodiments, PCRF 110 may include a PERM for generating one or more PERs. The PERM may generate PERs based on or using information from a policy context object. In some embodiments where a policy context object is stored at PCEF 108 or another module separate from PCRF 110, policy context information (e.g., policy definitions) may be sent (e.g., from PCEF 108) to PCRF 110 via a PER interface. After generating a PER using the policy context information, the PERM may send the PER to other nodes, such as an NMS or an accounting system. The PERs may be sent to nodes using various interfaces, such as a PER interface or an IP interface.

SPR/SDM/HSS 112 represent one or more suitable entities for storing or maintaining subscription related information, such as subscription profiles, policy information, and/or PCC rules. For example, SPR/SDM/HSS 112 may include a database, an HSS, an AAA, an SPR, or other node. SPR/SDM/HSS 112 may store policy information for use by PCRF 110 in making policy decisions. In one embodiment, a subscription profile may include authorization information, charging information, subscription information (e.g., access or service tiers), and quality of service (QoS) information associated with a subscriber, session, device, and/or an SDF. For example, a subscription profile may include information on a subscriber's permitted services, service pre-emption priorities, allowed QoS, and charging related data information for different types of SDFs.

SPR/SDM/HSS 112 may communicate with PCRF 110 and various other nodes, e.g., a HSS, an AAA, an MME and or a DRA/DSR. SPR/SDM/HSS 112 may be located external to or distinct from PCRF 110 or may be co-located or integrated with PCRF 110. For example, some SPRs may be located in various locations (e.g., networks) distinct from PCRF 110 and another SPRs may be co-located or integrated with PCRF 110 or another node in network 100.

SPR/SDM/HSS 112 may store policy information based on SDFs and/or other information (e.g., device information and/or subscriber identifiers). For example, in network 100, SPRs may be provisioned policy information based on device information and/or subscriber information and SDF information. For instance, policy information for users of 4G-capable smartphones may be stored in SPRs 1-3, while policy information for users of 3G-capable smartphones may be stored in SPRs 4-15 and policy information for top-tier data subscribers are stored in SPRs 16-20.

Policy information stored in SPR/SDM/HSS 112 may be indexed by similar information (e.g., SDF identifiers, device information, and/or subscriber identifiers. For example, PCRF 112 or a proxy (e.g., a message router) may send a query message to SPR/SDM/HSS 112. The query message may include a subscriber identifier and/or an SDF identifier. Using one or both of the identifiers from the query message, SPR/SDM/HSS 112 may determine corresponding policy information and provide the information to PCRF 110 or a proxy.

It will be appreciated that FIG. 1 is for illustrative purposes and that various nodes, their locations, and/or their functions may be changed, altered, added, or removed. For example, some nodes and/or functions may be combined into a single entity, e.g., an SPR and PCRF 110 may be included in an MPE. In a second example, a node and/or function may be located at or implemented by two or more nodes.

FIG. 2 is a diagram illustrating exemplary communications between PCRF 110 and PCEF 108 according to an embodiment of the subject matter described herein. Referring to FIG. 2, PCRF 110 may include one or more communications interfaces for communicating messages.

In step 1, PCEF 108, such as a GGSN node in a 3G or LTE network, may initially request policy and charging instructions from PCRF 110 via a CCR initial (CCR-I) message. A CCR-I message may include information (e.g., an attribute) that identifies the mobile subscriber with which the request is associated. PCRF 110 may receive, analyze, and/or process the CCR-I message. For example, PCRF 110 may extract one or more attributes from the CCR-I message, such as a subscriber ID, and may use the attributes to identify one or more PCC rules to be installed at PCEF 108.

In step 2, PCRF 110 may send a credit control answer initial (CCA-I) message which includes one or more PCC rules that are to be installed at PCEF 108.

In some embodiments, update messages may be communicated between PCEF 108 and PCRF 110. Update messages may be used when certain conditions occur (e.g., after a time period has expired or after a handover procedure) and may modify PCC rules for an existing communications session.

In step 3, PCEF 108 may request policy and charging instructions for an existing communications session from PCRF 110 via a CCR update (CCR-U) message. A CCR-U message may include information that identifies the mobile subscriber with which the request is associated. PCRF 110 may receive, analyze, and/or process the CCR-U message

In step 4, PCRF 110 may send a credit control answer update (CCA-I) message which includes one or more PCC rules that are to be installed at PCEF 108.

While FIG. 2 depicts CCR and CCA messages, it will be appreciated that other messages (e.g., a re-authorization request (RAR) message or a session terminate request (STR) message) may be communicated between PCEF 108 and PCRF 110 and that such messages may be associated with and/or initiate policy event triggers.

FIG. 3 is a diagram illustrating PCRF 110 according to an embodiment of the subject matter described herein. PCRF 110 may include a policy definition selection module (PDSM) 300 and a policy action module (PAM) 304. PDSM 300 may be configured to receive one or more PEAs and select, using the received PEAs, one or more policy definitions that are associated with a communication session. PAM 304 may be configured to analyze one or more policy definitions and to initiate one or more associated policy actions.

PCRF 110 or a module therein may include one or more communications interfaces for communicating messages (e.g., via a Gx interface, Gxx interface, Sp interface, an extensible markup language (XML) interface, a session initiation protocol (SIP) interface, a SOAP interface, or a hypertext transfer protocol (HTTP) interface or others). For example, a credit control request (CCR) may be received via a Gx interface from PCEF 108 for requesting policy information (e.g., PCC rules). In another example, PCRF 110 or a module therein may receive a policy request message via an HTTP or SIP interface from an IMS node. In yet another example, PCRF 110 may include one or more interfaces (e.g., Sp, SOAP, or HTTP) for communicating with SPR/SDM/HSS 112.

Referring to FIG. 3, prior to step 1, PCEF 108 may establish a session for subscriber ID X through an IP Connectivity Access Network (e.g., a WLAN). IP-CAN is a collection of network entities and interfaces that provides IP transport connectivity between UEs and core network entities. In one exemplary IP-CAN session establishment scenario, PCEF 108 may receive an IP-CAN session creation request. The IP-CAN session creation request may be a GTP message or a trigger message.

In response to the IP-CAN session creation request, in step 1, PCEF 108 (e.g., PDN gateway or GGSN) may send a Gx message to PCRF 110 (e.g., a policy server). For example, the Gx message may be any message, such as a CCR-I message, communicated via a Gx interface for requesting policies to be applied to the IP-CAN session. The Gx message may be for requesting PCC rules and may include various request attributes, also referred to herein as PEAs.

In step 2, PDSM 300 may extract one or more PEAs from the received message. PDSM 300 may use the extracted information in selecting and/or identifying one or more policy definitions. For example, PDSM 300 may include a policy data structure 302 that associates PEAs and policy identifiers. In this example, after determining policy identifiers, an additional data structure may be queried to retrieve additional information, such as PCC rules associated with relevant policy identifiers. In another example, policy data structure 302 may include policy definitions in addition to policy identifiers.

In some embodiments, a policy definition may include a predicate section and an action section. A predicate section may include one or more conditions or predicates that may be met before a policy action is initiated. In some embodiments, a policy, or portions therein (e.g., individual actions or PCC rules), may be enforced based on which predicates are met. For example, if no predicate associated with a policy is met, all policy actions associated with the policy may be skipped. In another example, if all predicates associated with a policy are met, all policy actions associated with the policy may be executed. In some embodiments, certain policy actions may be executed before, after, or simultaneously with other policy actions. For example, in some scenarios, all optional policy actions may be executed prior to a mandatory policy action. In another example, policy actions may be executed based on a predetermined order, a priority value, or randomly.

An action section may include one or more actions that are perform if one or more conditions in the predicate section are met. In some embodiments, an action section may include one mandatory policy action and zero or more optional policy actions. A mandatory policy action may include various actions, such as accepting a request, rejecting a request, or continuing processing policies. Some mandatory policy actions may be terminal events that result in the termination of a current policy, such as accepting or rejecting a request. An optional policy action may include various actions, such as installing a PCC rule, removing a PCC rule, logging an event, or updating a quota.

In some embodiments, when a policy event trigger occurs (e.g., an event that causes PCRF 110 to select PCC rules), a policy context object may be created. For example, receiving a credit control request initial (CCR-I) message at PCRF 108 may be a policy event trigger. In another example, receiving an IP-CAN session creation request message at PCEF 108 may be a policy event trigger. In response to a policy event trigger, PCRF 110 or another module may generate a policy context object and may store information that identifies the event (e.g., user identification, policy event trigger(s), PEAs, etc.) in the policy context object.

In some embodiments, a policy context object may include policy identifiers of policies associated with the event. For example, PCEF 108 or another module may consult the policy context object when making policy decisions by comparing PEAs stored in the policy context object and predicate conditions of the policy. If the current request attributes and predicate conditions of the policy match, a policy identifier associated with the policy may be stored at the policy context object (e.g., in a policy event trace list). In this example, the policy identifiers in the policy context object may indicate all policies that are executed or are to be executed in response to a policy event trigger. That is, a policy event trace list at a policy context object may identify all policies enforced or to be enforced for a given policy event.

In step 3, PAM 304 may receive a selected policy definition from PDSM 300. PAM 304 may analyze the selected policy definition and may determine one or more policy actions to initiate. For example, if PAM 304 determines that a policy definition is to be enforced, PAM 304 may generate a PCC rule and provide the PCC rule to PCEF 108. In another example, PAM 304 may send a session reject message or a session accept message. In yet another example, PAM 304 may generate an inspection trigger (IT) message and send the IT message to a deep packet inspection (DPI) module. In response to the IT message, the DPI module may be configured to inspect one or more messages associated with the communications session.

In step 4, PAM 304 may generate a CCA-I message that includes one or more PCC rules. The CCA-I message may be sent to PCEF 108 or another module for installation and enforcement.

FIG. 4 is a diagram illustrating PCRF 110 and PCEF 108 according to another embodiment of the subject matter described herein. PCRF 110 may include a PDSM 300 and PAM 304. PCRF 110 or a module therein may include one or more communications interfaces for communicating messages.

PCEF 108 may include PERM 402 for generating PERs based on policy information, such as policy event triggers, PEAs, and PCC rules. In some embodiments, policy information may be communicated between PCEF 108 and PCRF 110 via a PER interface or other interface.

Referring to FIG. 4, prior to step 1, PCEF 108 may establish a session for subscriber ID X through an IP-CAN. In one exemplary IP-CAN session establishment scenario, PCEF 108 may receive an IP-CAN session creation request. The IP-CAN session creation request may be a GTP message or a trigger message.

In response to the IP-CAN session creation request, in step 1, PCEF 108 may send a CCR-I message to PCRF 110.

In step 2, a subscriber data collection module (SDCM) 400 may receive the CCR-I message and may query one or more nodes to obtain relevant subscriber information. For example, one or more PEAs (e.g., “X”, such as a user ID) from a CCR-I message may be provided to SDM/SPR/HSS 112. Using the one or more PEAs from the CCR-I message, SDM/SPR/HSS 112 may identify additional PEAs (e.g., “Y” and “Z”, such as a tier identifier and an account status identifier) and provide the additional PEAs to SDCM 400. SDCM 400 may use PEAs collected from the one or more nodes and PEAs from the CCR-I message to identify relevant policies.

In an alternative embodiment, SDCM 400 may consult local subscriber information storage instead of querying remote nodes. In yet another embodiment, SDCM 400 and/or step 2 may be omitted.

In step 3, SDCM 400 or another module may use one or more PEAs in selecting and/or identifying one or more policy definitions. For example, PDSM 300 may include a policy data structure 302 that associates PEAs and policies.

In step 4, PAM 304 may receive a selected policy definition from PDSM 300. PAM 304 may analyze the selected policy definition and may determine one or more policy actions to initiate.

In step 5, PAM 304 may generate a CCA-I message that includes one or more PCC rules. The CCA-I message may be sent to PCEF 108 or another module for installation and enforcement.

In step 6, PERM 402 may receive policy information and may generate a PER. For example, policy information may be received from one or more modules or nodes, such as PAM 304 and PDSM 300. For example, information associated with PEAs “X”, “Y”, and “Z” may be communicated to PERM 402 along with information associated with policy definitions and information associated with the PCC rule(s) that were generated by PAM 304. PERM 402 may be adapted to generate one or more PERs that may include some or all of the obtained policy information.

In some embodiments, a policy context object or information associated with a policy context object may be provided to PERM 402. PERM 402 may use information associated with the policy context object, such as policy event triggers, PEAs, and a policy event trace list, to generate one or more PERs. For example, PERM 402 may extract fields or other information from a policy context object and encode them as type-length-value (TLV) elements and encapsulate the TLV elements in an IP packet or other format, such as a proprietary packet format.

In some embodiments, PERM 402 may be located at PCEF 108 and may receive policy information from PCRF 110 via a PER interface.

In step 8, a generated PER may be communicated from PERM 402 to one or more nodes, such as an NMS for analysis. For example, after a PER record is generated, PERM 402 may send the PER via one or more communications interfaces and/or protocols.

FIG. 5 is a diagram illustrating exemplary PCRF 110 according to another embodiment of the subject matter described herein. PCRF 110 may include PDSM 300, PAM 304, and PERM 402. PCRF 110 or a module therein may include one or more communications interfaces for communicating messages.

Referring to FIG. 5, prior to step 1, PCEF 108 may establish a session for subscriber ID X through an IP-CAN. In one exemplary IP-CAN session establishment scenario, PCEF 108 may receive an IP-CAN session creation request. The IP-CAN session creation request may be a GTP message or a trigger message.

In response to the IP-CAN session creation request, in step 1, PCEF 108 may send a CCR-I message to PCRF 110.

In step 2, a subscriber data collection module (SDCM) 400 may receive the CCR-I message and may query one or more nodes to obtain relevant subscriber information. SDCM 400 may use PEAs collected from the one or more nodes and PEAs from the CCR-1 message to identify relevant policies.

In an alternative embodiment, SDCM 400 may consult local subscriber information storage instead of querying remote nodes. In yet another embodiment, SDCM 400 and/or step 2 may be omitted.

In step 3, SDCM 400 or another module may use one or more PEAs in selecting and/or identifying one or more policy definitions.

In step 4, PAM 304 may receive a selected policy definition from PDSM 300. PAM 304 may analyze the selected policy definition and may determine one or more policy actions to initiate.

In step 5, PAM 304 may generate a CCA-I message that includes one or more PCC rules. The CCA-I message may be sent to PCEF 108 or another module for installation and enforcement.

In step 6, PERM 402 may receive policy information and may generate a PER. For example, policy information may be received from one or more modules or nodes, such as PAM 304 and PDSM 300. PERM 402 may be adapted to generate one or more PERs that may include some or all of the obtained policy information.

In some embodiments, a policy context object or information associated with a policy context object may be provided to PERM 402. PERM 402 may use information associated with the policy context object, such as policy event triggers, PEAs, and a policy event trace list, to generate one or more PERs.

In step 7, a generated PER record may be communicated to one or more nodes, such as an NMS for analysis.

FIG. 6 is a diagram illustrating exemplary PER data according to an embodiment of the subject matter described herein. As shown in FIG. 6, a PER portion 600 may include a MFP header portion and one or more PER TLV elements. The MFP header portion include various fields or sections, such as a MFP length field, a timestamp field, a payload size field, a channel field, a type field, and a way field.

PER portion 600 may also include a payload portion containing one or more PER TLV elements. For example, a PER may include mandatory TLV elements, such as a version and a timestamp. A PER may also include TLV elements associated with PEAs, such as a user ID, a RAT type, a IP-CAN type, a MCC-MNC, an event type, a session ID, an application ID, and a peer ID. A PER may also include TLV elements including one or more policy IDs. In some embodiments, a PER may include duplicate TLV elements or may omit TLV elements related to certain PEAs if those PEAs are not associated with the policy event.

FIG. 7 is a diagram illustrating exemplary policy group statistics according to an embodiment of the subject matter described herein. Table 700 may represent an exemplary data structure based on multiple PERs associated with numerous services. For example, an NMS or an accounting module may analyze numerous received PERs to identify how many policy events are associated with certain services. In this example, policy events associated with similar services and having similar PCC rules may be considered policy groups. As such, the PERs may be used to identify a policy group and identify effects the policy group may have on network resources, revenue, or other dynamics.

As depicted in FIG. 7, table 700 includes a ranking current (current) field, a ranking last (month) field, a policy group number field, a policy group name field, a total execution March 2011 field, a total execution April 2011 field, and a difference field. For example, table 700 may indicate that a policy group associated with Netflix service is the most popular (frequently executed) policy group and that the policy group has experienced a 500% increase between March 2011 and April 2011. Using this information, network operators (or sales executives) may determine whether to change policies that affect this particular group, such as whether to charge more for this service, whether to blacklist this service, or whether to increase or decrease a priority level associated with this policy group.

FIG. 8 is a diagram illustrating exemplary data usage statistics according to an embodiment of the subject matter described herein. Table 800 may represent an exemplary data structure based on multiple PERs associated with numerous services. For example, an NMS or an accounting module may analyze numerous received PERs to identify data usage and utilization of data quotas for subscribers in certain tiers.

As depicted in FIG. 8, table 800 includes a tier field, a monthly quota field, an average usage field, a number of subscribers field, a <=10% (of usage) field, a >10% & <=80% (of usage) field, a >80% & <=100% (of usage) field, a >100% (of usage) field, and an upgraded field. For example, table 800 may indicate that very few platinum tier subscribers reached their quota limits but that bronze tier subscribers are more likely than any other tier to reach their quota limits and are more likely upgrade to a greater tier. Using this information, network operators (or sales executives) may determine whether to change policies that affect quotas of certain tiers. For example, by studying the data, marketing executives may attempt to sell higher tiers to subscribers of lower tiers or subscribers that use 80% or more of their current data quota.

FIG. 9 is a flow chart illustrating an exemplary process for generating a PER according to an embodiment of the subject matter described herein. In some embodiments, the exemplary process described herein, or portions thereof, may be performed by PCEF 108, PCRF 110, and/or another module or node.

Referring to FIG. 9, in step 900, one or more PEAS may be received and the one or more PEAs may be used to select one or more policy definitions that are associated with a communication session. For example, a CCR-I message may be received at PDSM 300. PDSM 300 may query, using PEAs stored in the CCR-I message, one or more data structures and may identify one or more relevant policies.

In some embodiments, an attribute (e.g., a PEA) may include an event type, a policy identifier (ID), a RAT type, an IP-CAN type, a MCC, a serving MNC, a session ID, an application ID, a peer identity, a user ID, a user IPv4 address, a user IPv6 address, a called station ID, a mobility protocol, a tier, or an event triggers mask.

In step 902, the selected one or more policy definitions are analyzed and one or more associated policy actions are initiated. For example, PAM 304 may receive policy definitions. After analyzing the policy definitions, various policy actions may be initiated or performed.

In some embodiments, initiating one or more associated policy actions may include generating a PCC rule, updating a user quota, accepting a session, rejecting a session, or signaling a deep packet inspection (DPI) module.

In step 904, a policy event record may be generated that includes information that identifies the one or more selected policy definitions. For example, PDSM 300, PAM 304, or another module may provide policy information to PERM 402.

In some embodiments, the policy information may be based on information in a policy context object. The policy information may be provided via a PER interface. PERM 402 may send PERs to other nodes, such as a network operations control center, an NMS, an accounting system, a diagnostics system or other system for human-operator viewing, logging, storage, future retrieval, post-processing analysis, network engineering analysis or policy engineering analysis.

In some embodiments, a PER may include information that identifies the one or more associated policy actions. In some embodiments, a PER may include information that identifies the one or more associated PEAs.

In some embodiments, the exemplary process (e.g., steps 900-904) may occur at or is performed by a PCRF module.

In some embodiments, the receiving, the analyzing, and the initiating (e.g., steps 900-902) may occur at or may be performed by a PCRF module and the generating (e.g., steps 904) may occur at or may be performed by PERM 402, wherein PERM 402 is distinct from PCRF 110 and is connected to PCRF 110 via a PER interface. For example, a PER interface may be adapted to facilitate the communication of policy definition information between PCRF 110 and PERM 402.

It will be understood that various details of the subject matter described herein may be changed without departing from the scope of the subject matter described herein. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation, as the subject matter described herein is defined by the claims as set forth hereinafter. 

1. A method for generating a policy event record (PER), the method comprising: receiving one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session; analyzing the selected one or more policy definitions and initiating one or more associated policy actions; and generating a policy event record that includes information that identifies the one or more selected policy definitions.
 2. The method of claim 1 wherein a policy event attribute includes an event type, a policy identifier (ID), a radio access technology (RAT) type, an Internet protocol (IP) connectivity access network (IP-CAN) type, a serving mobile country code (MCC), a serving mobile network code (MNC), a session ID, an application ID, a peer identity, a user ID, a user IPv4 address, a user IPv6 address, a called station ID, a mobility protocol, a tier, or an event triggers mask.
 3. The method of claim 1 wherein initiating one or more associated policy actions includes generating a policy and charging control (PCC) rule, updating a user quota, accepting a session, rejecting a session, or signaling a deep packet inspection (DPI) module.
 4. The method of claim 1 wherein the PER includes information that identifies the one or more associated policy actions.
 5. The method of claim 1 wherein the PER includes information that identifies the one or more associated PEAs.
 6. The system of claim 1 wherein the method occurs at or is performed by a PCRF module.
 7. The method of claim 1 wherein the receiving, the analyzing, and the initiating occur at or are performed by a PCRF module and the generating occurs at or is performed by a PER module (PERM), wherein the PERM is distinct from the PCRF and is connected to the PCRF module via a PER interface.
 8. The method of claim 7 where the PERM is associated with a network monitoring system (NMS).
 9. The method of claim 7 where the PER interface is adapted to facilitate the communication of policy definition information between the PCRF module and the PERM.
 10. A system for generating a policy event record (PER), the system comprising: a policy definition selection module (PDSM) configured to receive one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session; a policy action module (PAM) configured to analyze the selected one or more policy definitions and to initiate one or more associated policy actions; and a PER module (PERM) configured to generate a policy event record that includes information that identifies the one or more selected policy definitions.
 11. The system of claim 10 wherein a policy event attribute includes an event type, a policy identifier (ID), a radio access technology (RAT) type, an Internet protocol (IP) connectivity access network (IP-CAN) type, a serving mobile country code (MCC), a serving mobile network code (MNC), a session ID, an application ID, a peer identity, a user ID, a user IPv4 address, a user IPv6 address, a called station ID, a mobility protocol, a tier, or an event triggers mask.
 12. The system of claim 10 wherein the PAM is configured to generate a policy and charging control (PCC) rule, update a user quota, accept a session, reject a session, or signal a deep packet inspection (DPI) module.
 13. The system of claim 10 wherein the PER includes information that identifies the one or more associated policy actions.
 14. The system of claim 10 wherein the PER includes information that identifies the one or more associated PEAs.
 15. The system of claim 10 wherein the PDSM, the PAM, and the PERM are located at a PCRF module.
 16. The system of claim 10 wherein the PDSM and the PAM are located at a PCRF module and the PERM is located apart from the PCRF module and connected to the PCRF module via a PER interface.
 17. The system of claim 16 where the PERM is associated with a network monitoring system (NMS).
 18. The system of claim 16 where the PER interface is adapted to facilitate the communication of policy definition information between the PCRF module and the PERM.
 19. A non-transitory computer readable medium comprising computer executable instructions that when executed by, a processor of a computer control the computer to perform steps comprising: receiving one or more policy event attributes (PEAs) and using the received PEAs to select one or more policy definitions that are associated with a communication session; analyzing the selected one or more policy definitions and initiating one or more associated policy actions; and generating a policy event record that includes information that identifies the one or more selected policy definitions. 